package com.erp.erp_servers.InspectCargo;

import com.erp.erp_entitys.CustomerComplaint.CustomerComplaintEntity;
import com.erp.erp_entitys.InspectCargo.InspectCargoAndProduct;
import com.erp.erp_entitys.InspectCargo.InspectCargoEntity;
import com.erp.erp_entitys.InspectCargo.InspectCargoVo;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface IInspectCargoService {
    int deleteByPrimaryKey(Integer id);

    int insert(InspectCargoEntity record);

    int insertSelective(InspectCargoEntity record);

    InspectCargoEntity selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(InspectCargoEntity record);

    int updateByPrimaryKey(InspectCargoEntity record);

    PageInfo<InspectCargoEntity> selectInspectCargoList(InspectCargoVo icVo);

    List<InspectCargoEntity> selectByIdList(List<String> list);

    int updateBoxStatus(List<InspectCargoEntity> list);

    int updateStageStatus(List<InspectCargoEntity> list);

    int updateBoxStatusBykey(InspectCargoVo icVo);

    int insertProAndFile(InspectCargoEntity record);

    int updateInfoById(InspectCargoEntity record);

    boolean isExist(String oddNumber);

    String getLatestOddNumber();

    /**
     * 按出运计划单号 查询是否存在验货单
     * @param loadPlanNo 出运计划单号
     * @return 是否存在
     */
    boolean selectInspectCargoListByShipmentNo(String loadPlanNo);

    /**
     * 按出运计划单号 生成验货记录
     * @param loadPlanNo 出运计划单号
     * @return 记录数
     */
    int generateInspectCargoByShipmentNo(String loadPlanNo);

    /**
     * 按出运计划删除验货
     * @param loadPlanNo 出运计划单号
     * @return
     */
    int delInspectCargoByLoadPlanNo(String loadPlanNo);

    /**
     * 按条件查询 验货-产品
     * @param vo
     * @return
     */
    List<InspectCargoAndProduct> selectInspectCargoAndProductList(InspectCargoVo vo);
}